//新增一个点要素,需要传入点击的事件对象\收集的属性信息\地图图层
function addPntCallback(e, collectInfo, docLayer) {
  //表单数组的第七个参数是处理状态
  console.log(collectInfo)
  //创建一个点形状，描述点形状的几何信息
  var gpoint = new Zondy.Object.GPoint(e.coordinate[0], e.coordinate[1])
  //设置当前点要素的几何信息
  var fGeom = new Zondy.Object.FeatureGeometry({ PntGeom: [gpoint] })
  //根据事件的处理状态设置颜色
  let pntColor
  switch (collectInfo[7]) {
    case 0:
      pntColor = 6
      break
    case 1:
      pntColor = 4
      break
    case 2:
      pntColor = 7
      break
    default:
      pntColor = 6
  }
  //描述点要素的符号参数信息
  var pointInfo = new Zondy.Object.CPointInfo({
    //子图角度，取值范围为0~360。
    Angle: 0,
    //子图颜色（请参考MapGIS颜色库中颜色编号）
    Color: pntColor,
    //子图高度
    SymHeight: 6,
    //子图ID（请参考MapGIS符号库中线符号编号）
    SymID: 21,
    //子图宽度
    SymWidth: 6,
  })
  //设置当前点要素的图形参数信息
  var webGraphicInfo = new Zondy.Object.WebGraphicsInfo({
    InfoType: 1,
    PntInfo: pointInfo,
  })
  //设置添加点要素的属性信息
  var attValue = collectInfo
  //创建一个要素
  var feature = new Zondy.Object.Feature({
    fGeom: fGeom,
    GraphicInfo: webGraphicInfo,
    AttValue: attValue,
  })
  //设置要素为点要素
  feature.setFType(1)
  //创建一个要素数据集
  var featureSet = new Zondy.Object.FeatureSet()
  featureSet.clear()
  //设置属性结构，根据图层属性进行设置
  var cAttStruct = new Zondy.Object.CAttStruct({
    FldName: [
      '事件编号',
      '事件类型',
      '事件等级',
      '发生时间',
      '发生地点',
      '车牌号',
      '驾驶员',
      '处理状态',
    ],
    FldNumber: 8,
    FldType: [
      'string',
      'string',
      'int',
      'string',
      'string',
      'string',
      'string',
      'int',
    ],
  })
  featureSet.AttStruct = cAttStruct
  //添加要素到要素数据集
  featureSet.addFeature(feature)
  //创建一个编辑服务类
  var addService = new Zondy.Service.EditDocFeature('地图文档', 4, {
    ip: 'localhost',
    port: 6163,
  })
  //执行添加点要素功能
  addService.add(featureSet, onAddPntSuccess)
  function onAddPntSuccess(data) {
    if (data) {
      //刷新图层
      docLayer.refresh()
    } else {
      ElMessage.error('添加点要素失败！')
    }
  }
}

export default addPntCallback
